package com.kerrykidz.scminvoicing.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.kerrykidz.scminvoicing.dao.model.ScmPurOrderEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmSupEntity;
import com.rdp.framework.exception.RDPException;

@Repository
public interface ScmPurOrderEntityMapper {

	/**
	 * @Title: findScmPurOrder
	 * @Description: 获得采购订单列表
	 * @param scmPurOrder
	 * @date: 2014年8月11日
	 * @return: List<ScmPurOrderEntity>
	 */
	List<ScmPurOrderEntity> findScmPurOrder(ScmPurOrderEntity scmPurOrder)
			throws RDPException;

	/**
	 * @Title: findScmPurOrderForStock
	 * @Description:获得新增入库需要的采购订单实例
	 * @param: <@param scmPurOrder
	 * @date: 2014年8月12日
	 * @return: List<ScmPurOrderEntity>
	 */
	List<ScmPurOrderEntity> findScmPurOrderForStock(
			ScmPurOrderEntity scmPurOrder) throws RDPException;

	/**
	 * 新增付款申请 时 的 采购订单列表
		 * @Description   
		 * List<ScmPurOrderEntity>
		 * @author chenyu
		 * 2014年9月16日 上午11:08:15
	 */
	List<ScmPurOrderEntity> findScmPurOrderPayForm(ScmPurOrderEntity scmPurOrder) throws RDPException;
	
	/**
	 * 根据 付款申请单编号，获取 付款申请明细  (采购订单列表)
		 * @Description   
		 * List<ScmPurOrderEntity>
		 * @author chenyu
		 * 2014年9月16日 下午1:46:03
	 */
	List<ScmPurOrderEntity> scmPurOrderListByPayFormId(@Param("pkPayFormId")String pkPayFormId) throws RDPException;
	
	/**
	 * 
	 * @Title: updateScmPurOrderForStock
	 * @Description:  入库时更新采购订单表
	 * @param scmPurOrder
	 * @date: 2014年8月14日
	 * @return: void
	 * @throws RDPException
	 * 
	 */
	void updateScmPurOrderForStock(ScmPurOrderEntity scmPurOrder)
			throws RDPException;
	
	/**
	 * 根据主键id，获得采购订单信息
		 * @Description   
		 * ScmPurOrderEntity
		 * @author chenyu
		 * 2014年9月7日 下午5:36:53
	 */
	public ScmPurOrderEntity getScmPurOrderById(
			@Param("pkPurordId") String pkPurordId);
	
	/**
	 * 新增 采购订单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月7日 下午5:49:15
	 */
	void addScmPurOrder(ScmPurOrderEntity scmPurOrder); 
	
	/**
	 * 修改采购订单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月7日 下午5:50:00
	 */
	void updateScmPurOrder(ScmPurOrderEntity scmPurOrder); 
	
	/**
	 * 根据商品Id，获取该商品的供应商下拉框列表
		 * @Description   
		 * List<ScmSupEntity>
		 * @author chenyu
		 * 2014年9月10日 下午4:21:59
	 */
	List<ScmSupEntity> PurOrderSupplyListBySprdId(@Param("sprdId") String sprdId);
	
	/**
	 * 根据商品Id,供应商id，获取该商品的供应商下拉框列表
		 * @Description   
		 *ScmSupEntity
		 * @author chenyu
		 * 2014年9月10日 下午4:21:59
	 */
	 ScmSupEntity  PurOrderSupplyBySprdIdandSupId(@Param("pkSupId") String pkSupId,@Param("sprdId") String sprdId);
	
	/**
	 * 获取该商品的供应商下拉框列表
		 * @Description   
		 * List<ScmSupEntity>
		 * @author chenyu
		 * 2014年9月10日 下午4:21:59
	 */
	List<ScmSupEntity> PurOrderSupplyList(@Param("fkBranId") String fkBranId);
	
	/**
	 * 根据采购订单id，删除采购订单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月14日 下午9:17:06
	 */
	void delPurOrderByOrderId(@Param("pkPurordId") String pkPurordId);
	
	/**
	 * 根据 供应商编号，查询有效的供应商信息
		 * @Description   
		 * ScmSupEntity
		 * @author chenyu
		 * 2014年9月19日 下午6:22:07
	 */
	ScmSupEntity getScmSupBysupId(@Param("supplyId") String pkPurordId);
	
	/**
	 * 根据 付款申请单编号，,供应商编号 获取 付款申请明细  (采购订单列表)
		 * @Description   
		 * List<ScmPurOrderEntity>
		 * @author chenyu
		 * 2014年9月16日 下午1:46:03
	 */
	List<ScmPurOrderEntity> scmPurOrderListSupIdAndByPayFormId(@Param("supplyId")String supplyId,@Param("pkPayFormId")String pkPayFormId) throws RDPException;
	
}